#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>


// char* strcpy(char* destination, const char* source);
//strcpy使用(合并)
//int main()
//{
//	char arr1[] = "hello world";
//	char arr2[20] = { 0 };
//	strcpy(arr2, arr1);
//	printf("%s\n", arr2);
//	return 0;
//}


//strcpy模拟
//#include<assert.h>
//char* my_strcpy(char* dest, const char* src) {
//	assert(dest && src);
//	char* ret = dest;
//	while (*dest++ = *src++) {
//		;
//	}
//	return ret;
//}
//
//
//int main()
//{
//	char arr1[] = "hello world";
//	char arr2[20] = { 0 };
//	char* p = my_strcpy(arr2, arr1);
//	printf("%s", arr2);
//	return 0;
//}


//strcat(追加)
//int main()
//{
//	/*char arr1[20] = "he\0ll0xxxxx";
//	char arr2[] = "world"; */
//
//	char arr[20] = "abc";
//	strcat(arr, arr);
//	printf("%s\n", arr);
//	return 0;
//}


////strcat模拟
//#include<assert.h>
//char* my_strcat(char* dest, const char* scr)
//{
//	assert(dest && scr);
//	char* ret = dest;
//	while (*dest != '\0') {
//		dest++;//*dest++是错误的，*dest++为一个值
//	}
//	while (*dest++ = *scr++) {
//		;
//	}
//	return ret;
//}
//
//int main()
//{
//	char arr1[20] = "abc\0def";
//	char arr2[] = "ccdef";
//	char* p = my_strcat(arr1, arr2);
//	printf("%s\n", p);
//	return 0;
//}

//strcmp(比较)
//int main()
//{
//	char arr1[10] = "abcdef";
//	char arr2[10] = "abcde";
//	int ret = strcmp(arr1, arr2);
//	printf("%d\n", ret);
//	return 0;
//}

//模拟strcmp
//#include<assert.h>
//
//char* my_strcmp(const char* arr1, const char* arr2)
//{
//	assert(arr1 && arr2);
//	while (*arr1 == *arr2) {
//		if (*arr1 == '\0') {
//			return 0;
//		}
//		arr1++;
//		arr2++;
//	}
//	if (*arr1 > *arr2)
//		return 1;
//	else
//		return -1;
//}
//
//int main()
//{
//	char arr1[] = "abcd";
//	char arr2[] = "abcf";
//	int ret = my_strcmp(arr1, arr2);
//	printf("%d\n", ret);
//	return 0;
//}

// strncpy：拷⻉num个字符从源字符串到⽬标空间。
//int main()
//{
//	char arr1[10] = "abcdf";
//	char arr2[10] = { 0 };
//	strncpy(arr2, arr1, 4);
//	printf("%s\n", arr2);
//	return 0;
//}

//strncat（将source指向字符串的前num个字符追加到destination指向的字符串末尾，再追加⼀个 \0 字符)
//int main()
//{
//	char arr1[20] = "hello m\0ool";
//	char arr2[] = "other1";
//	strncat(arr1, arr2, 5);
//	printf("%s\n", arr1);
//	return 0;
//}

//strncmp
//int main()
//{
//	char arr1[20] = "abcdeff";
//	char arr2[20] = "abcdfff";
//	//int ret = strncmp(arr1, arr2, 4);// 0
//	int ret = strncmp(arr1, arr2, 5);//-1
//	printf("%d\n", ret);
//	return 0;
//}


//strtok
//int main()
//{
//	char arr[] = "zpengwei@yeah.net@hehe.haha#ttttt";
//	char buf[256] = { 0 };
//	strcpy(buf, arr);//"zpengwei\0yeah.net"
//	//char sep[] = "@.";
//	char* sep = "@.";
//	char* ret = NULL;
//	for (ret = strtok(buf, sep); ret != NULL; ret = strtok(NULL, sep))
//	{
//		printf("%s\n", ret);
//	}
//
//	//char* ret = strtok(buf, sep);
//	//printf("%s\n", ret);
//	//ret = strtok(NULL, sep);
//	//printf("%s\n", ret);
//	//ret = strtok(NULL, sep);
//	//printf("%s\n", ret);
//
//	return 0;
//} 


//strstr
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//	char arr[] = "abcdefabcdef";
//	char* p = "efab";
//	char* ret = strstr(arr, p);
//
//	printf("%s\n", ret);//efabcdef
//
//	return 0;
//}



